# Standard defines:
CXX  	=	g++

LIBS = -L/usr/local/lib/mingw -lfftw -lfltk_cartesian `fltk-config --ldflags` -lm -lpthreadGC

CXX_FLAGS	=	-O -Wall `fltk-config --cxxflags`

C_FLAGS	=	-O -Wall `fltk-config --cflags` -DWIN32

LN_FLAGS	=	-mno-cygwin -mdll -static -s fltk_cartesian.def
LD_FLAGS	=	-O -Wall `fltk-config --ldflags`

SRCS	=	../Cartesian.cpp ../scope/scope.cpp ../scope/serial.c

OBJS	=	scope.o serial.o

ALLOBJS	=	$(EXOBJS)

ALLBIN	=	scope
ALLTGT	=	fltk_cartesian.a scope

# User defines:

#@# Targets follow ---------------------------------

all:	$(ALLTGT)

objs:	$(ALLOBJS)

cleanobjs:
	rm -f $(ALLOBJS)

cleanbin:
	rm -f $(ALLBIN)

clean:	cleanobjs cleanbin

cleanall:	cleanobjs cleanbin

#@# Dependency rules follow -----------------------------

scope: $(OBJS)
	$(CXX) $(CXX_FLAGS) -o scope $(OBJS) $(LIBS)

fltk_cartesian.dll: Fl_Cartesian.o
	$(CXX) $(LN_FLAGS) -ofltk_cartesian.dll Fl_Cartesian.o

fltk_cartesian.a: Fl_Cartesian.o
	$(AR) -r libfltk_cartesian.a Fl_Cartesian.o

Fl_Cartesian.o: ../Fl_Cartesian.cpp ../Fl_Cartesian.H
	$(CXX) $(CXX_FLAGS) -mdll -c -o $@ $<

scope.o: ../scope/scope.cpp ../Fl_Cartesian.H ../scope/serial.h
	$(CXX) $(CXX_FLAGS) -c -o $@ $<

serial.o: ../scope/serial.c ../scope/serial.h
	$(CC) $(C_FLAGS) -c -o $@ $<
